package com.xinweisi.dataserver.module.datastatistics.statistics;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xinweisi.dataserver.module.datastatistics.statistics.domain.dto.MemberDataQueryDTO;
import com.xinweisi.dataserver.module.datastatistics.statistics.domain.vo.MemberAvgTimeVO;
import com.xinweisi.dataserver.module.datastatistics.statistics.domain.vo.MemberDataVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
@Mapper
public interface MemberDataDao extends BaseMapper<MemberDataVO> {

    /**
     * 查询所有在线会员（分页）
     *
     * @param queryDTO
     * @return
     */
    MemberDataVO selectMemberData(@Param("queryDTO") MemberDataQueryDTO queryDTO);

    /**
     * 获取平均时长
     * @author lijie1
     * @date 2020/7/2 0002
     */
    MemberAvgTimeVO getMemberAvgTime(@Param("queryDTO") MemberDataQueryDTO queryDTO);

    /**
     * 获取新增用户按小时
     * @author lijie1
     * @date 2020/7/6 0006
     */
    List<Map<String, Long>> getKLineByThreeDayToNew(@Param("queryDTO") MemberDataQueryDTO queryDTO);

    /**
     * 获取活跃用户按小时
     * @author lijie1
     * @date 2020/7/6 0006
     */
    List<Map<String, Long>> getKLineByThreeDayToActive(@Param("queryDTO") MemberDataQueryDTO queryDTO);

    /**
     * 获取在线用户按小时
     * @author lijie1
     * @date 2020/7/6 0006
     */
    List<Map<String, String>> getOnlineUser(@Param("queryDTO") MemberDataQueryDTO queryDTO);

    /**
     * 获取在线用户按小时
     * @author lijie1
     * @date 2020/7/6 0006
     */
    List<Map<String, Long>> getKLineByThreeDayToOnline(@Param("queryDTO") MemberDataQueryDTO queryDTO, @Param("ids")String[] idList);
}
